package servlets;

import java.io.IOException;
import java.sql.Connection;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import model.Teilnehmer;
import service.TerminplanerConnectionPool;
import service.TerminplanerService;
import service.TokenStore;

@WebServlet("/EditTeilnehmerServlet")
public class EditTeilnehmerServlet extends HttpServlet{
  private static final long serialVersionUID = 1L;

  protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    
    request.getSession().setAttribute("token", TokenStore.getInstance().createToken());
    Connection con = null;
    String terminId = null;
    Teilnehmer teilnehmer = null;
    try {
      Long teilnehmerId = Long.valueOf(request.getParameter("TeilnehmerId"));
      terminId = request.getParameter("TerminId");
      con = TerminplanerConnectionPool.getInstanz().getConnection();
      
      teilnehmer = TerminplanerService.getInstanz().getTeilnehmerById(con, teilnehmerId);
      
      
    } catch (Exception e) {
      request.setAttribute("exception", e.getMessage());
      request.getRequestDispatcher("/WEB-INF/jsps/error.jsp").forward(request, response);
      e.printStackTrace();
      return;
    }
    finally{
      TerminplanerConnectionPool.getInstanz().saveClose(con);
    }
    
    request.setAttribute("anrede", teilnehmer.getAnrede());
    request.setAttribute("vorname", teilnehmer.getVorname());
    request.setAttribute("nachname", teilnehmer.getNachname());
    request.setAttribute("TerminId", terminId);
    request.setAttribute("TeilnehmerId", teilnehmer.getId());
    request.getRequestDispatcher("/WEB-INF/jsps/addTeilnehmer.jsp").forward(request, response);
  }
  
  protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  
  
}
  
}
